SPSS 缺失值函数

作者:Ruben Geert van den Berg,发布于 SPSS Blog

真实世界的数据通常包含一些(甚至很多)缺失值。检查缺失值的数量总是一个好主意,以避免之后出现不愉快的意外。为了做到这一点,SPSS 提供了一些缺失值函数,这些函数主要与 COMPUTEIFDO IF 命令一起使用。本教程演示了如何有效地使用它们。我们将使用 hospital.sav 中的最后 5 个变量来进行演示。

SPSS 医院数据

设置用户缺失值 (User Missing Values)

在讨论 SPSS 缺失值函数之前,我们首先将最后 5 个变量的 6 设置为用户缺失值,通过运行以下 语法 行。

missing values doctor_rating to facilities_rating (6).

SPSS 缺失值函数

表达式 (Expression) 含义 (Meaning) 返回值 (Returns)
MISSING 评估值是否为系统缺失 (System Missing) 或用户缺失 (User Missing) True (真) 或 False (假)
SYSMIS 评估值是否为系统缺失 (System Missing) True (真) 或 False (假)
NMISS 返回变量中缺失值的数量 数值 (Numeric Value)
NVALID 返回变量中有效值的数量 数值 (Numeric Value)

SPSS MISSING 函数

SPSS MISSING 函数评估一个值是否缺失(无论是用户缺失值 还是系统缺失值)。例如,我们将标记在 doctor_rating 上有缺失值的个案,使用以下语法。如果 COMPUTE 命令让您感到困惑,请参阅 Compute A = B = C 获取解释。

***1. 标记在 doctor_rating 上有缺失值的个案。
**
compute mis_1 = missing(doctor_rating).

***2. 将标记的个案移动到文件顶部。
**
sort cases mis_1 (d).

SPSS MISSING 函数结果

SPSS SYSMIS 函数

SPSS SYSMIS 函数评估一个值是否为系统缺失 (System Missing)。例如,以下语法使用 IF 将所有系统缺失值替换为 99。然后我们将标记它,将其指定为用户缺失值,并使用 FREQUENCIES 进行快速检查。

***1. 将系统缺失值更改为 99。
**
if sysmis(doctor_rating) doctor_rating = 99.

***2. 添加值标签 99。
**
add value labels doctor_rating 99 'Recoded system missing value'.

***3. 将 6 和 99 指定为用户缺失值。
**
missing values doctor_rating (6,99).

***4. 快速检查。
**
frequencies doctor_rating.

SPSS SYSMIS 函数结果

SPSS NMISS 函数

SPSS NMISS 函数计算个案中变量的缺失值数量。具有许多缺失值的个案可能存在问题,您可能希望使用 FILTERSELECT IF 将它们从分析中排除。该语法运行快速扫描以查找此类个案。

***1. 计算指示每个案例缺失值的变量。
**
compute mis_2 = nmiss(doctor_rating to facilities_rating).

***2. 应用变量标签 (Variable Label)。提示:在此处指示涉及的变量数量。
**
variable labels mis_2 'Number of missing values over doctor_rating to facilities_rating (5 variables)'.

***3. 快速检查。
**
frequencies mis_2.

SPSS NMISS 函数结果

SPSS NVALID 函数

SPSS NVALID 函数计算变量上的有效值的数量。它等效于变量的数量减去这些变量的 NMISS。请注意,点运算符 (dot operator) 是一种更快的替代方法,用于从统计函数(例如 MEANSUM)中排除个案。

***计算 doctor_rating 到 facilities_rating 的有效值 (5 个变量)。
**
compute valid_1 = nvalid(doctor_rating to facilities_rating).
exe.